/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package paw.eltabique.service.impl;

import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import paw.eltabique.domain.Usuario.Role;
import paw.eltabique.service.exceptions.UserAlReadyExistException;
import paw.eltabique.service.exceptions.UserNotFoundException;
import paw.eltabique.service.interfaces.UsuarioService;
import paw.eltabique.domain.Usuario;
import paw.eltabique.web.data.UserData;

/**
 *
 * @author drakart
 */
public class UsuarioServiceImpl implements UsuarioService{
  
  UserData datos = UserData.getInstance();

  @Override
  public void addUsuario(Usuario usr) throws UserAlReadyExistException {
    datos.addUsuario(usr);
  }

  @Override
  public void updateUsuario(Usuario usr) throws UserNotFoundException {
    datos.updateUsuario(usr);
  }

  @Override
  public void removeUsuario(String usrName) throws UserNotFoundException {
    datos.removeUsuario(usrName);
  }

  @Override
  public Usuario getByName(String usrName) throws UserNotFoundException {
    return datos.getUsuario(usrName);
  }

  @Override
  public Collection<Usuario> getAll() {
    return datos.getUsuarios();
  }

  @Override
  public Boolean checkAuth(String usrName, String role) throws UserNotFoundException {
    Usuario usr = datos.getUsuario(usrName);
    if(usr.getRole() != Role.valueOf(role)) throw new UserNotFoundException("Este Usuario no existe");
    return usr.getRole() == Role.valueOf(role);
  }

}
